import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import path from 'path'
import CopyPlugin from 'vite-plugin-files-copy'

// https://vitejs.dev/config/
export default defineConfig({
  base: "/",

  plugins: [
    vue(),
    AutoImport({
      dts: 'src/types/auto-imports.d.ts', // 生成配置文件，如果是ts项目，通常我们会把声明文件放在根目录/types中，
      // 自动导入 Vue 相关函数，如：ref, reactive, toRef 等
      imports: ["vue",'vue-router', 'pinia'],
      eslintrc: {
        enabled: false, // 默认false, true启用。生成一次就可以，避免每次工程启动都生成，一旦生成配置文件之后，最好把enable关掉，即改成false
//否则这个文件每次会在重新加载的时候重新生成，这会导致eslint有时会找不到这个文件。当需要更新配置文件的时候，再重新打开
        filepath: './.eslintrc-auto-import.json', // 生成json文件,可以不配置该项，默认就是将生成在根目录
        globalsPropValue: true,
      },
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      // 指定自动导入的组件位置，默认是 src/components
      dirs: ["src/components"],
      resolvers: [ElementPlusResolver()],
    }),
    CopyPlugin({
      patterns: [
        {
          from: './public/ribbon.xml', // string 相对项目下相对路径
          to: './dist/ribbon.xml', // string 相对项目下相对路径
        },
      ],
    }),
  ],
  server: {
    host: "0.0.0.0",
    port: 18888,
    cors: true,
    open: true,
    proxy: {
      '/api': {
        target: 'http://192.168.1.88:9999',
        changeOrigin: true,
        rewrite: (path: string) => path.replace(/^\/api/, ''),
      },
    },
  },
  resolve:{
    // 使用别名
    alias:{
      '@':path.resolve(__dirname,'./src')
    }
  }
});
